<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>ReactJS 02 带状态组件</title>
    <script src="https://cdn.bootcss.com/react/16.2.0/umd/react.production.min.js"></script>
    <script src="https://cdn.bootcss.com/react-dom/16.2.0/umd/react-dom.production.min.js"></script>
    <script src="https://cdn.bootcss.com/babel-standalone/6.26.0/babel.min.js"></script>

    <link href="https://cdn.bootcss.com/highlight.js/9.12.0/styles/vs2015.min.css" rel="stylesheet">
    <script src="https://cdn.bootcss.com/highlight.js/9.12.0/highlight.min.js"></script>

    <script>hljs.initHighlightingOnLoad();</script>
</head>
<body>
<div id="root"></div>

<script type="text/babel">
    class Timer extends React.Component{
        constructor(props){
            super(props);
            this.state = {seconds: 0};
        }
        tick(){
            this.setState(prevState => ({
                seconds: prevState.seconds + 1
            }));
        }

        componentDidMount(){
            this.interval = setInterval(()=>this.tick(), 1000);
        }

        componentWillUnmount() {
            clearInterval(this.interval);
        }

        render() {
            return (
                <div>
                    Seconds: {this.state.seconds}
                </div>
            );
        }
    }
    ReactDOM.render(
        <Timer  />,
        document.getElementById('root')
    );
</script>

</body>
</html>